//
// Created by 86155 on 2025/11/8.
//
#include "stdio.h"
#include "user.h"
#include "order_food_control.h"


User user_db[MAX_USER];  // 定义用户数组
int current_user_idx = -1; // 当前登录用户索引（初始为-1，未登录）

void order_menu() {
    int a = user_logic_and_register();
    if (a != -4) {
        int user_id = user_db[current_user_idx].user_id;
        init_temp_order();
        while (1) {
            printf("\n===== 点单界面 =================\n");
            printf("1. 查看所有菜品\n");
            printf("2. 点单\n");
            printf("3. 结算\n");
            printf("4. 确认订单并结算\n");
            printf("5. 欢迎下次光临\n");
            printf("================================\n");
            printf("请输入选择：");
            fflush(stdout);

            // 清空输入缓冲区
            while (getchar() != '\n');
            int choose;
            scanf("%d", &choose);

            switch (choose) {
                case 1:
                    // 查看所有菜品
                    printf("\n----- 所有菜品 -----\n");
                    foods_message_query();
                    break;

                case 2: {
                    // 点单
                    int foods_id, quantity;
                    printf("请输入菜品ID：");
                    scanf("%d", &foods_id);
                    printf("请输入数量：");
                    scanf("%d", &quantity);

                    if (quantity <= 0) {
                        printf("数量必须为正数!\n");
                        break;
                    }
                    add_to_temp_order(foods_id, quantity); // 添加到临时订单
                    break;
                }

                case 3: {
                    // 查看已点菜品
                    if (temp_order.count == 0) {
                        printf("您还没有点任何菜品\n");
                        break;
                    }
                    printf("\n===== 已点菜品 =====\n");
                    printf("序号 | 菜品名称 | 数量 | 单价 | 小计\n");
                    printf("----------------------------------------\n");
                    for (int i = 0; i < temp_order.count; i++) {
                        TempOrderItem *item = &temp_order.items[i];
                        printf("%d.   %s   ×%d   %.2f元   %.2f元\n",
                               i + 1, item->foods_name, item->quantity,
                               item->price, item->total);
                    }
                    printf("----------------------------------------\n");
                    printf("当前总价: %.2f元\n", temp_order.total_price);
                    break;
                }

                case 4:
                    // 确认结算（显示总价并完成支付）
                    confirm_and_pay(user_id);
                    break;
                case 5:
                    return;
                default:
                    printf("输入错误！请输入1-5之间的数字\n");
                    break;
            }
        }
    }
}


